package com.qianxun.api.anno;

import com.qianxun.framework.util.http.UploadFileInfo;

import java.lang.annotation.*;

/**
 * @author: huwei
 * @date: 2019/9/18 15:42
 * @version: 1.0.0
 */
@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface ApiInfo {
    /**
     * uri
     * @return
     */
    String[] uri();

    /**
     * 上传文件标识
     * @return
     */
    boolean uploadFile() default false;

    /**
     * 批量上传文件标识，当开启批量上传时，fileInfoParameter()指定的参数应该是Collection下的集合对象
     * @return
     */
    boolean batchUploadFile() default false;

    /**
     * 上传文件信息参数名，当启动上传文件功能时，将从该方法指定的参数中获取上传文件信息
     * @return
     */
    String fileInfoParameter() default "fileInfo";

    /**
     * 上传文件信息参数的类型，该类型必须继承至UploadFileInfo对象，以从中获取file文件的信息
     * @return
     */
    Class<? extends UploadFileInfo> fileInfoClass() default UploadFileInfo.class;

    RequestMethod method() default RequestMethod.POST;
}
